package com.yantong.controller.product;

import com.yantong.annotation.Log;
import com.yantong.controller.BaseController;
import com.yantong.result.ResultVo;
import com.yantong.utils.PageUtils;
import com.yantong.pojo.ProductComment;
import com.yantong.pojo.vo.ProductCommentListVo;
import com.yantong.service.ProductCommentService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

/**
 * 商品评价
 * 
 * @author baolingyu
 * @date 2018年8月28日
 */
@Controller
@RequestMapping("/comment/manage")
public class ProductCommentController extends BaseController{
	private static final String prefix = "product/comment";

	@Autowired
	private ProductCommentService commentService;

	/**
	 * 跳转分类页面
	 *
	 * @return
	 */
	@GetMapping()
	@RequiresPermissions("comment:manage:manage")
	public String toComment() {
		return prefix + "/comments";
	}

	/**
	 * 列表
	 * 
	 * @return
	 * @author baolingyu
	 * @date 2018年8月28日-上午11:41:11
	 */
	@GetMapping("/list")
	@ResponseBody
	@RequiresPermissions("comment:manage:manage")
	public PageUtils<ProductCommentListVo> list(int offset, int limit, int type) {
		Long centreId = getUserCentreId();
		Long teamId = getUserTeamId();
		return commentService.list(offset, limit, centreId,teamId, type);
	}
	
	/**
	 * 跳转到新增页面
	 * @return
	 * @author baolingyu
	 * @date 2018年8月30日-下午7:12:55
	 */
	@RequiresPermissions("comment:manage:add")
    @GetMapping("/toAdd")
    public String add() {
        return prefix + "/add";
    }

	/**
	 * 新增
	 * 
	 * @param category
	 * @return
	 * @author baolingyu
	 * @date 2018年8月28日-上午11:41:19
	 */
	@Log(module = "商品评价管理", operation = "新增")
	@RequiresPermissions("comment:manage:add")
	@PostMapping("/save")
	@ResponseBody
	public ResultVo save(ProductComment obj) {
		if (obj == null) {
			return ResultVo.error();
		}
		if (commentService.save(obj) < 1) {
			return ResultVo.error();
		}
		return ResultVo.ok();
	}

	/**
	 * 跳转到编辑页面
	 * 
	 * @param centreId
	 * @param model
	 * @return
	 * @author baolingyu
	 * @date 2018年8月28日-下午2:12:57
	 */
	@RequiresPermissions("comment:manage:edit")
	@GetMapping("/edit/{id}")
	public String edit(@PathVariable Long id, Model model) {
		model.addAttribute("obj", commentService.getByKey(id));
		return prefix + "/edit";
	}

	/**
	 * 更新评论
	 * 
	 * @param obj
	 * @return
	 * @author baolingyu
	 * @date 2018年8月28日-下午2:13:49
	 */
	@Log(module = "商品评价管理", operation = "编辑")
	@RequiresPermissions("comment:manage:edit")
	@PostMapping("/update")
	@ResponseBody
	public ResultVo update(ProductComment obj) {
		if (obj == null || obj.getId() == null) {
			return ResultVo.error();
		}

		if (commentService.update(obj) < 1) {
			return ResultVo.error();
		}
		return ResultVo.ok();
	}

	/**
	 * 删除评论
	 * 
	 * @param id
	 * @return
	 * @author baolingyu
	 * @date 2018年8月28日-下午2:20:00
	 */
	@Log(module = "商品评价管理", operation = "删除")
	@RequiresPermissions("comment:manage:remove")
	@PostMapping("/remove")
	@ResponseBody
	public ResultVo remove(Long id) {
		if (id == null) {
			return ResultVo.error();
		}
		if (commentService.remove(id) < 1) {
			return ResultVo.error();
		}
		return ResultVo.ok();
	}
}
